home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / Information / CSMP Digest / volume 1 / csmp-v1-216.txt < prev    next >
Encoding:
Text File  |  1994-12-08  |  44.5 KB  |  1,254 lines  |  [TEXT/R*ch]

  1. C.S.M.P. Digest             Sun, 22 Nov 92       Volume 1 : Issue 216
  2.  
  3. Today's Topics:
  4.  
  5.     Suppl. Gestalt Selector List (Oct 21)
  6.     Undoc. gestalt selector list
  7.     Code-Resources
  8.     'sysz' resource
  9.     Problem w/ Sys7 Popup Menus
  10.     Registering Gestalt Selectors
  11.     RTF format?
  12.     Changing open resource files
  13.  
  14.  
  15.  
  16. The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
  17.  
  18. The digest is a collection of article threads from the internet newsgroup
  19. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  20. regularly and want an archive of the discussions.  If you don't know what a
  21. newsgroup is, you probably don't have access to it.  Ask your systems
  22. administrator(s) for details.  You can post articles to any newsgroup by
  23. mailing your article to newsgroup@ucbvax.berkeley.edu.  So, to post an
  24. article to comp.sys.mac.programmer, you mail it to
  25. comp-sys-mac-programmer@ucbvax.berkeley.edu.  Note the '-' instead of '.'
  26. in the newsgroup name.
  27.  
  28. Each issue of the digest contains one or more sets of articles (called
  29. threads), with each set corresponding to a 'discussion' of a particular
  30. subject.  The articles are not edited; all articles included in this digest
  31. are in their original posted form (as received by our news server at
  32. cs.uoregon.edu).  Article threads are not added to the digest until the last
  33. article added to the thread is at least one month old (this is to ensure that
  34. the thread is dead before adding it to the digest).  Article threads that
  35. consist of only one message are generally not included in the digest.
  36.  
  37. The entire digest is available for anonymous ftp from ftp.cs.uoregon.edu
  38. [128.223.8.8] in the directory /pub/mac/csmp-digest.  Be sure to read the
  39. file /pub/mac/csmp-digest/README before downloading any files.  The most
  40. recent issues are available from sumex-aim.stanford.edu [36.44.0.6] in the
  41. directory /info-mac/digest/csmp.  If you don't have ftp capability, the sumex
  42. archive has a mail server; send a message with the text '$MACarch help' (no
  43. quotes) to LISTSERV@ricevm1.rice.edu for more information.
  44.  
  45. The digest is also available via email.  Just send a note saying that you
  46. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  47. automatically receive each new issue as it is created.  Sorry, back issues
  48. are not available through the mailing list.
  49.  
  50. Send administrative mail to mkelly@cs.uoregon.edu.
  51.  
  52.  
  53. -------------------------------------------------------
  54.  
  55. From: rgaros@bio.vu.nl (Rene G.A. Ros)
  56. Subject: Suppl. Gestalt Selector List (Oct 21)
  57. Date: 21 Oct 92 18:58:49 GMT
  58. Organization: VU Biology, Amsterdam, The Netherlands
  59.  
  60. Supplemental Gestalt Selector Codes List *
  61.  
  62. Last updated: Oct., 21 1992 19:40 CET
  63.  
  64. Supplemental to the selectors listed in the Gestalt Chapter of
  65. Inside Macintosh VI (IM VI), that is.
  66. These can include selectors added by Apple's (system) software or
  67. by software from third parties (your software?).
  68. If a selector code is added by Apple software the entry also
  69. includes if it is an addition to or not listed in IM VI.
  70.  
  71. I don't have all the documentation or knowledge and I don't want to.
  72. I would like to see this list as a combined effort by different
  73. persons who have together access to a wide area of information.
  74. This list may contain (educated) guesses and perhaps even false
  75. information, so no guarantee is made about the contents.
  76. When there is a reference to a source you may expect there is a
  77. higher probability it is correct.
  78. If you wish to give me more information or correct the information
  79. in this list, please mail me at rgaros@bio.vu.nl
  80.  
  81. If you read this list in a Usenet group: you can also read it by
  82. using finger to the same address.
  83.     Tip: finger rgaros@bio.vu.nl | more
  84. My .plan file which you see when you do this is more up-to-date. I
  85. will post this list to comp.sys.mac.programmer once a month. Or
  86. when (a lot of) information is added/corrected.
  87.  
  88. CONTENTS
  89.     Format used
  90.     Gestalt Selector Codes & Responses
  91.     Abbreviations
  92.     Format 4-byte word version number
  93.     Sources
  94.     Thanks to
  95.  
  96. ####Format used:
  97.  
  98.     | ****'selector code' (Application [available since version])
  99.     |     name (description, documentation) OR description
  100.     |
  101.     |     CONST declaration; (remark) *ref.number to source
  102.     |
  103.     | contradiction:
  104.     |   source A says "x"
  105.     |   source B says "y"
  106.  
  107.  
  108.     Some constant-names may not originate from official publications.
  109.     Any bitpattern described is what I or others found
  110.     on their machine with their configuration.
  111.  
  112. ####Gestalt Selector Codes & Responses
  113. ****'admn' (AppleShare Admin appl [since v3.0?])
  114.     gestaltASAdminAttr (not listed in IM VI)
  115.  
  116.     gestaltASAdmin        = 'admn';
  117.     gestaltASAdminPresent = 0; (present = running, selector
  118.                                 exists when appl has ran,
  119.                                 if still running bit is set)
  120. ****'ApoL' (Apollo ext [since v1.0a7])
  121.     gestaltINITApolloTable
  122.  
  123.     (response will be published by Jeremy Roussak,
  124.      Apollo 1.0 is not yet released.)
  125. ****'asps' (AppleShare Print Server appl [since v3.0?])
  126.     gestaltASPrintServerAttr (not listed in IM VI)
  127.  
  128.     gestaltASPrintServer        = 'asps';
  129.     gestaltASPrintServerPresent = 0; (present = running, selector
  130.                                       exists when appl has ran,
  131.                                       if still running bit is set)
  132. ****'atkv' (System [since 7.0])
  133.     gestaltATalkVersion (see also TN311)
  134.     Returns AppleTalk version in 4-byte words
  135.  
  136.     gestaltATalkVersion = 'atkv'; *3
  137. ****'AzNe' (NameView cp)
  138.     unknown, Table?
  139. ****'BSDa' (CloseView cp)
  140.     unknown
  141. ****'bugz' (System [Tuna Helper]/Tune-up ext)
  142.     probably used to communicate between the Tuna Helper
  143.     and the Tune-up extension about repaired errors.
  144.     The value returned by 1.1.1 is one bit set more
  145.     then 1.0.
  146. ****'conn' (System)
  147.     gestaltConnMgrAttr (addition)
  148.  
  149.     additional responses exist but unknown (bit 2 & 3)
  150. ****'cpnt' (QuickTime ext)
  151.     gestaltComponentMgrAttr (Component Manager)
  152.  
  153.     gestaltComponentMgr        = 'cpnt';
  154.     gestaltComponentMgrPresent = 0; (guess)
  155. ****'dict' (System [since v7.1])
  156.     gestaltDictionaryMgr (System 7.1 Dictionary Manager,
  157.                           not listed in IM VI)
  158.  
  159.     gestaltDictionaryMgr = 'dict';
  160.     new System 7.1 responses exist but unknown
  161. ****'eajt' (System)
  162.     gestaltEasyAccessJTable (not listed in IM VI)
  163.  
  164.     gestaltEasyAccessJ = 'eajt'; *3
  165.     Returns the base address of the Easy Access jump-trap table
  166. ****'ESOC' (Serial of Champions ext)
  167.     unknown
  168. ****'flag' (Network Extension ext)
  169.     gestaltFlagshipAttr (not listed in IM VI, see also TN311)
  170.  
  171.     gestaltFlagship           = 'flag'; *3
  172.     gestaltFlagshipPresent    = 0;      *3
  173.     gestaltFlagshipRegistered = 1;      *3
  174. ****'fpu ' (System)
  175.     gestaltFPUType (addition)
  176.  
  177.     gestal68040FPU = 3; *2
  178. ****'fs  ' (System)
  179.     gestaltFSAttr (addition)
  180.  
  181.     gestaltHasFileSystemManager = 2; *2
  182. ****'font' (System)
  183.     gestaltFontMgrAttr (addition)
  184.  
  185.     additional System 7.1 responses exist but unknown
  186. ****'hdwr' (System)
  187.     gestaltHardwareAttr (additions)
  188.  
  189.     gestaltHasRBV          =  2; (RBV)             *3
  190.     gestaltHasOSS          =  5; (OSS)             *3
  191.     gestaltHasSCSIDMA      =  6; (53C80 SCSI DMA)  *3
  192.     gestaltHasSWIMIOP      =  8; (SWIM IOP)        *3
  193.     gestaltHasSCCIOP       =  9; (SCC IOP)         *3
  194.     gestaltHasIWM          = 11; (IWM)             *3
  195.     gestaltHasSoftPowerOff = 19;                   *2
  196.     gestaltHasSonic        = 20; (Sonic)           *3
  197.     gestaltHasSCSI961      = 21; (Int. 53C96 SCSI) *1
  198.     gestaltHasSCSI962      = 22; (Ext. 53C96 SCSI) *1
  199.     gestaltHasDAFBVideo    = 23; (DAFB Video)      *3
  200. ****'He20' (Helium cp)
  201.     unknown
  202. ****'hgfd' (AppleShare File Server appl [since v3.0?])
  203.     gestaltASFileServerAttr (not listed in IM VI)
  204.  
  205.     gestaltASFileServer        = 'hgfd';
  206.     gestaltASFileServerPresent = 0; (present = running, selector
  207.                                      exists when appl has ran,
  208.                                      if still running bit is set)
  209. ****'icmp' (QuickTime ext)
  210.     unknown
  211. ****'Intj' (Interjection ext)
  212.     unknown
  213. ****'kbd ' (System)
  214.     gestaltKeyboardType (additions)
  215.  
  216.     gestaltPwrBookADBKbd    = 12; *1
  217.     gestaltPwrBookISOADBKbd = 13; *1
  218. ****'mach' (System)
  219.     gestaltMachineType (additions)
  220.  
  221.     gestaltQuadra900    = 20; *1
  222.     gestaltPowerBook170 = 21; *1
  223.     gestaltQuadra700    = 22; *1
  224.     gestaltClassicII    = 23; *1
  225.     gestaltPowerBook100 = 24; *1
  226.     gestaltPowerBook140 = 25; *1
  227.     gestaltQuadra950    = 26; *1
  228.     gestaltPowerBook210 = 29;
  229.     gestaltPowerBook230 = 32;
  230.     gestaltPowerBook180 = 33;
  231.     gestaltPowerBook160 = 34;
  232.     gestaltMacLCII      = 37;
  233.     gestaltMacIIvi      = 44;
  234.     gestaltPerforma600  = 45;
  235.     gestaltMacIIvx      = 48;
  236.     gestaltPowerBook145 = 54;
  237.  
  238.     contradiction:
  239.       Dev.Note PwrBk145 says "gestaltPowerBook145 = 25; with sys 7.0.x and
  240.                               gestaltPowerBook145 = 45; with sys 7.1"
  241.       According M.Johnson    "gestaltPowerBook145 = 54;"
  242. ****'mtcp' (MacTCP cp [since v1.1?])
  243.     returns noErr when present, return value is zero.
  244. ****'mmu ' (System)
  245.     gestaltMMUType (addition)
  246.  
  247.     gestalt68040MMU = 4; *2
  248. ****'MV10' (TearOFF cp)
  249.     unknown
  250. ****'ppc ' (System)
  251.     gestaltPPCToolboxAttr
  252.  
  253.     gestaltPPCToolbox        = 'ppc '
  254.     gestaltPPCToolboxDenyIn  =  0; (Deny incoming net requests)  *3
  255.     gestaltPPCToolboxDenyOut =  1; (Deny outgoing net requests)  *3
  256.     gestaltPPCToolboxRTDeliv = 12; (supports real-time delivery) *3
  257.     gestaltPPCToolboxStore   = 13; (supports store and format)   *3
  258.     gestaltPPCToolboxCare    = 14; (supports "Don't care")       *3
  259.  
  260.     contradiction:
  261.       TN129 says     "gestaltPPCToolboxPresent = 0;"
  262.       GestaltDA says "gestaltPPCToolboxDenyIn  = 0;"
  263. ****'proc' (System)
  264.     gestaltProcessorType (addition)
  265.  
  266.     gestalt68040 = 5; *2
  267. ****'qdrw' (System)
  268.     gestaltQuickDrawFeaturesAttr (not listed in IM VI)
  269.  
  270.     gestaltQuickDrawFeatures = 'qdrw'; *2
  271.     gestaltHasColor          = 0; *2
  272.     gestaltHasDeepGWorlds    = 1; *2
  273.     gestaltHasDirectPixMaps  = 2; *2
  274.     gestaltHasGrayishTextOr  = 3; *2
  275. ****'qtim' (QuickTime ext)
  276.     gestaltQuickTimeVersion
  277.     Returns QuickTime version in 4-byte words
  278.  
  279.     gestaltQuickTimeVersion = 'qtim';
  280. ****'rsrc' (System)
  281.     gestaltResourceMgrAttr (addition)
  282.  
  283.     gestaltResourceMgr???? = 1;
  284. ****'tabl' (System)
  285.     gestaltSelectorTable
  286.     Returns the address of the Gestalt selector table itself.
  287.  
  288.     gestaltSelectorTable = 'tabl';
  289. ****'tsmv' (System)
  290.     gestaltTextServicesMgrVersion? (not listed in IM VI)
  291.  
  292.     gestaltTextServicesMgr = 'tsmv';
  293.     new System 7.1 responses exist but unknown
  294. ****'vmcl' (System, VM on)
  295.     unknown.
  296. ****'vmbs' (System, VM on)
  297.     unknown.
  298. ****'wma.' (System)
  299.     gestaltResponderAttr (Workstation Management Agent aka Responder,
  300.                           not listed in IM VI)
  301.  
  302.     gestaltResponder        = 'wma.';
  303.     gestaltResponderPresent = 0;
  304. ****'xttt' (System)
  305.     gestaltExtToolboxTable
  306.     Returns the base address of the Extended Toolbox trap table.
  307. ****'YeHa' (SpeedyFinder7 cp)
  308.     unknown
  309.  
  310. ####Abbreviations:
  311.     appl  - application
  312.     cp    - control panel
  313.     ext   - extension
  314.  
  315.     ADB   - Apple Desktop Bus
  316.     AS    - AppleShare
  317.     ASC   - Apple Sound Chip
  318.     CPU   - Central Processing Unit
  319.     DAFB  - ?
  320.     DMA   - ?
  321.     FPU   - Floating Point Unit
  322.     IOP   - Input/Output Processor
  323.     IWM   - Integrated Woz Machine
  324.     MMU   - Memory Management Unit
  325.     OSS   - ?
  326.     PPC   - Program-to-Program Communication
  327.     RBV   - ?
  328.     SCC   - Serial Communications Controller
  329.     SCSI  - Small Computer System Interface
  330.     SIMM  - Single In-line Memory Module
  331.     Sonic - ?
  332.     SWIM  - Super Integrated Woz Machine
  333.     TN    - Technical Note
  334.     VIA   - Versatile Interface Adapter
  335.     VM    - Virtual Memory
  336.  
  337. ####Format 4-byte word version number:
  338.     The format of the LONGINT result is as follows:
  339.  
  340.         byte;                        /* Major revision */
  341.         byte;                        /* Minor revision */
  342.         byte    development = 0x20,  /* Release stage */
  343.                 alpha = 0x40,
  344.                 beta = 0x60,
  345.                 final = 0x80, /* or */ release = 0x80;
  346.         byte;                        /* Non-final release # */
  347.  
  348. ####Sources:
  349.     *1 Apple Inc.; TN129 May 1987, rev. May 1992
  350.     *2 Symantec Corp.; THINK Pascal 4.0.1
  351.     *3 Gestalt DA by Carl C.Hewitt, 1990
  352.     *4 Apple Inc.; Developer Notes PowerBook 145
  353.     -  Apple Inc.; TN311 April 1992, rev. May 1992
  354.     If no source mentioned, found by myself or others.
  355.  
  356.     All trade names referenced are the trademark or registered
  357.     trademark of their respective holder.
  358.  
  359. ####Thanks to:
  360.     Cor Stoof <sjoukje@bio.vu.nl> (NL),
  361.     John van Wielink <vwielink@bio.vu.nl> (NL),
  362.     Lawrence D'Oliveiro <ldo@waikato.ac.nz> (NZ)
  363.     Marco Piovanelli <piovanel@pluto.sm.dsi.unimi.it> (IT),
  364.     Mark B. Johnson <mjohnson@Apple.com> (USA),
  365.     Quinn <quinn@cs.uwa.edu.au> (AU).
  366.     These persons supplied information used in this list. They did this
  367.     on personal title, NOT on behalf of their employer.
  368.  
  369. ####Moderator:
  370.     Rene G.A. Ros (student Computer Science)
  371.     D.C. van Krimpenstraat 3
  372.     1067 SG  Amsterdam, The Netherlands
  373.     Phone#    : +31 20 611 92 74 / +31 20 611 87 00
  374.     Fax#      : +31 20 611 60 06
  375.     Internet  : rgaros@bio.vu.nl
  376.                 rgaros@nikhefk.nikhef.nl
  377.     CompuServe: 100112,1363 (not prefered)
  378.                 >INTERNET:rgaros@bio.vu.nl
  379.  
  380. *   An earlier posted list had 'Undocumented' as part of the title.
  381.     As I understood, this means to most of you something different
  382.     to what my Dutch-English dictionary says. My apologies.
  383.     English is not my native tongue, you see...
  384.  
  385. ************************************************************
  386. Rene G.A. Ros                         Amsterdam, Netherlands
  387. rgaros@bio.vu.nl                    rgaros@nikhefk.nikhef.nl
  388. ************************************************************
  389. My English is niet very well en ook nog not so snel,
  390. but that comes later wel.
  391. ************************************************************
  392.  
  393. ---------------------------
  394.  
  395. From: rgaros@bio.vu.nl (Rene G.A. Ros)
  396. Subject: Undoc. gestalt selector list
  397. Date: 12 Oct 92 12:13:27 GMT
  398. Organization: VU Biology, Amsterdam, The Netherlands
  399.  
  400. Undocumented Gestalt Selector Codes
  401.  
  402. 'Undocumented' means to me: not mentioned in Inside Macintosh VI.
  403.  
  404. Format used:
  405. ****'selector code' (Application added selector)
  406.     name (description, documentation) OR description
  407.  
  408.     CONST declaration; (remark) *ref.number to source
  409.  
  410. Some constant-names may not originate from official publications.
  411. Any bitpattern described is what I or others found
  412. on their machine with their configuration.
  413.  
  414. I don't have all the documentation or knowledge and I don't want to.
  415. I would like to see this list as a combined effort by different
  416. people who have together access to a wide area of information.
  417. If you wish to give me more information or correct the information
  418. in this list, please mail me at rgaros@bio.vu.nl
  419. If you read this list in Usenet group comp.sys.mac.programmer: you
  420. can also read it by using finger to the same address.
  421. Tip: finger rgaros@bio.vu.nl | more
  422.  
  423.  
  424.  
  425. ****'admn' (AppleShare Admin appl)
  426.     gestaltAppleShareAdminAttr (not documented at all)
  427.  
  428.     gestaltAppleShareAdmin = 'admn';
  429.     gestaltAppleShareAdminPresent = 0; (present = running, selector
  430.                                         exists when appl has ran,
  431.                                         if still running bit is set)
  432. ****'atkv' (System)
  433.     gestaltATalkVersion (see also TN311)
  434.     Returns AppleTalk version in 4-bit words
  435.  
  436.     gestaltATalkVersion = 'atkv'; *3
  437. ****'AzNe' (NameView cdev)
  438.     unknown
  439. ****'BSDa' (CloseView cdev)
  440.     unknown
  441. ****'bugz' (System [Tuna Helper]/Tune-up ext)
  442.     probably used to communicate between the Tuna Helper
  443.     and the Tune-up extension about repaired errors.
  444.     The value returned by 1.1.1 is one bit set more
  445.     then 1.0.
  446. ****'conn' (System)
  447.     gestaltConnMgrAttr (addition)
  448.  
  449.     additional responses exist but unknown (bit 1,2,3)
  450. ****'cpnt' (QuickTime)
  451.     gestaltComponentMgrAttr (Component Manager)
  452.  
  453.     gestaltComponentMgr = 'cpnt';
  454.     gestaltComponentMgrPresent = 0; ???
  455. ****'dict' (System)
  456.     gestaltDictionaryMgr (System 7.1 Dictionary Manager,
  457.                           not documented at all)
  458.  
  459.     gestaltDictionaryMgr = 'dict';
  460.     new System 7.1 responses exist but unknown
  461. ****'eajt' (System)
  462.     gestaltEasyAccessJTable (not documented at all)
  463.  
  464.     gestaltEasyAccessJ = 'eajt'; *3
  465.     Returns the base address of the Easy Access jump-trap table
  466. ****'ESOC' (Serial of Champions ext)
  467.     unknown
  468. ****'flag' (Network Extension ext)
  469.     gestaltFlagshipAttr (not documented at all, see also TN311)
  470.  
  471.     gestaltFlagship           = 'flag'; *3
  472.     gestaltFlagshipPresent    = 0; *3
  473.     gestaltFlagshipRegistered = 1; *3
  474. ****'fpu ' (System)
  475.     gestaltFPUType (addition)
  476.  
  477.     gestal68040FPU = 3; *2
  478. ****'fs  ' (System)
  479.     gestaltFSAttr (addition)
  480.  
  481.     gestaltHasFileSystemManager = 2; *2
  482. ****'font' (System)
  483.     gestaltFontMgrAttr (addition)
  484.  
  485.     additional System 7.1 responses exist but unknown
  486. ****'hdwr' (System)
  487.     gestaltHardwareAttr (additions)
  488.  
  489.     gestaltHasRBV          =  2; (RBV)            *3
  490.     gestaltHasOSS          =  5; (OSS)            *3
  491.     gestaltHasSCSIDMA      =  6; (53C80 SCSI DMA) *3
  492.     gestaltHasSWIMIOP      =  8; (SWIM IOP)       *3
  493.     gestaltHasSCCIOP       =  9; (SCSI IOP)       *3
  494.     gestaltHasIWM          = 11; (IWM)            *3
  495.     gestaltHasSoftPowerOff = 19;                  *2
  496.     gestaltHasSonic        = 20; (Sonic)          *3
  497.     gestaltHasSCSI961      = 21; (Int 53C96 SCSI) *1
  498.     gestaltHasSCSI962      = 22; (Ext 53C96 SCSI) *1
  499.     gestaltHasDAFBVideo    = 23; (DAFB Video)     *3
  500. ****'He20' (Helium cdev)
  501.     unknown
  502. ****'hgfd' (AppleShare File Server appl)
  503.     gestaltAppleShareFServerAttr (not documented at all)
  504.  
  505.     gestaltAppleShareFServer = 'hgfd';
  506.     gestaltAppleShareFServerPresent = 0; (present = running, selector
  507.                                           exists when appl has ran,
  508.                                           if still running bit is set)
  509. ****'icmp' (System?)
  510.     unknown ("integrated circuit map"?????)
  511.  
  512.     below is what I guess at this moment:
  513.     gestaltSIMMICPresent = 'icmp'
  514.     gestaltSIMMICBankA1  = 0; (First two SIMMs in Bank A)
  515.     gestaltSIMMICBankA2  = 1; (Last two SIMMs in Bank A)
  516.     gestaltSIMMICBankB1  = 2; (First two SIMMs in Bank B)
  517.     gestaltSIMMICBankB2  = 3; (Last two SIMMs in Bank B)
  518.     etc. ... ???
  519. ****'Intj' (Interjection ext)
  520.     unknown
  521. ****'kbd ' (System)
  522.     gestaltKeyboardType (additions)
  523.  
  524.     gestaltPwrBookADBKbd    = 12; *1
  525.     gestaltPwrBookISOADBKbd = 13; *1
  526. ****'mach' (System)
  527.     gestaltMachineType (additions)
  528.  
  529.     gestaltQuadra900    = 20; *1
  530.     gestaltPowerBook170 = 21; *1
  531.     gestaltQuadra700    = 22; *1
  532.     gestaltClassicII    = 23; *1
  533.     gestaltPowerBook100 = 24; *1
  534.     gestaltPowerBook140 = 25; *1
  535.     gestaltQuadra950    = 26; *1
  536.     gestaltPowerBook145 = 45; (7.1, with 7.0.1 = 25) *4
  537. ****'mtcp' (MacTCP [>=1.1?] cdev)
  538.     returns noErr when present, return value is zero.
  539. ****'mmu ' (System)
  540.     gestaltMMUType (addition)
  541.  
  542.     gestalt68040MMU = 4; *2
  543. ****'MV10' (TearOFF cdev)
  544.     unknown
  545. ****'ppc ' (System)
  546.     gestaltPPCToolboxAttr
  547.  
  548.     gestaltPPCToolbox        = 'ppc '
  549.     gestaltPPCToolboxDenyIn  =  0; (Deny incoming net requests)  *3
  550.     gestaltPPCToolboxDenyOut =  1; (Deny outgoing net requests)  *3
  551.     gestaltPPCToolboxRTDeliv = 12; (supports real-time delivery) *3
  552.     gestaltPPCToolboxStore   = 13; (supports store and format)   *3
  553.     gestaltPPCToolboxCare    = 14; (supports "Don't care")       *3
  554.  
  555.     contradiction: TN129 says     "gestaltPPCToolboxPresent = 0;"
  556.                    GestaltDA says "gestaltPPCToolboxDenyIn  = 0;"
  557. ****'proc' (System)
  558.     gestaltProcessorType (addition)
  559.  
  560.     gestalt68040 = 5; *2
  561. ****'qdrw' (System)
  562.     gestaltQuickDrawFeaturesAttr (not documented at all)
  563.  
  564.     gestaltQuickDrawFeatures = 'qdrw'; *2
  565.     gestaltHasColor          = 0; *2
  566.     gestaltHasDeepGWorlds    = 1; *2
  567.     gestaltHasDirectPixMaps  = 2; *2
  568.     gestaltHasGrayishTextOr  = 3; *2
  569. ****'qtim' (QuickTime ext)
  570.     gestaltQuickTimeVersion
  571.     Returns QuickTime version in 4-bit words
  572.  
  573.     gestaltQuickTimeVersion = 'qtim';
  574. ****'rsrc' (System)
  575.     gestaltResourceMgrAttr (addition)
  576.  
  577.     gestaltResource???? = 1;
  578. ****'tsmv' (System)
  579.     gestaltTextServicesMgrVersion? (not documented at all)
  580.  
  581.     new System 7.1 responses exist but unknown
  582. ****'vmcl' (System, VM on)
  583.     unknown.
  584. ****'vmbs' (System, VM on)
  585.     unknown.
  586. ****'wma.' (Workstation Management Agent aka Responder)
  587.     gestaltResponderAttr (see also TN311)
  588.  
  589.     gestaltResponder        = 'wma.';
  590.     gestaltResponderPresent = 0;
  591. ****'xttt' (System)
  592.     gestaltExtToolboxTable
  593.     Returns the base address of the Extended Toolbox trap table.
  594. ****'YeHa' (SpeedyFinder7 cdev)
  595.     unknown
  596.  
  597. Sources:
  598. *1 Apple Inc.; TN129 may 1987;
  599. *2 THINK Pascal 4.0.1;
  600. *3 Gestalt DA by Carl C.Hewitt, 1990
  601. *4 Apple Inc.; Developer Notes PowerBook 145
  602. If no source mentioned, found by myself or others.
  603.  
  604. Thanks to:
  605. Marco Piovanelli (IT),
  606. John van Wielink <vwielink@bio.vu.nl> (NL),
  607. Cor Stoof <sjoukje@bio.vu.nl> (NL),
  608. Quinn <quinn@cs.uwa.edu.au> (AU).
  609.  
  610. ************************************************************
  611. Rene G.A. Ros                         Amsterdam, Netherlands
  612. rgaros@bio.vu.nl                    rgaros@nikhefk.nikhef.nl
  613. ************************************************************
  614. My English is niet very well en ook nog not so snel,
  615. but that comes later wel.
  616. ************************************************************
  617.  
  618. +++++++++++++++++++++++++++
  619.  
  620. From: ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)
  621. Date: 20 Oct 92 18:09:23 +1300
  622. Organization: University of Waikato, Hamilton, New Zealand
  623.  
  624. In article <1992Oct12.121327.2631@bio.vu.nl>, rgaros@bio.vu.nl (Rene G.A. Ros)
  625. lists a whole bunch of undocumented Gestalt selector codes.
  626.  
  627. Interesting. I shall be saving that list. However, you haven't included the
  628. 'tabl' selector, which returns the address of the Gestalt selector table
  629. itself. This is what Carl Hewitt's GestaltDA uses to produce its list of
  630. selectors.
  631.  
  632. Lawrence D'Oliveiro                       fone: +64-7-856-2889
  633. Computer Services Dept                     fax: +64-7-838-4066
  634. University of Waikato            electric mail: ldo@waikato.ac.nz
  635. Hamilton, New Zealand    37^ 47' 26" S, 175^ 19' 7" E, GMT+13:00
  636. User-centered design fails miserably when users no longer feel centered.
  637.                    -- Bruce Tognazzini, "Tog on Interface"
  638.  
  639. ---------------------------
  640.  
  641. From: andi@uni-paderborn.de (Andreas Sorgatz)
  642. Subject: Code-Resources
  643. Date: 12 Oct 92 18:32:18 GMT
  644. Organization: Uni-GH Paderborn, Germany
  645.  
  646. Hi,
  647.  
  648. anybody there, having experince with executing code-resources ?
  649.  
  650.  
  651. My problem:
  652.  
  653. I want to generate a ResourceFile with a code-resource in it
  654. (from C, for example with Think-C), in order to open and exe-
  655. cute it from and within another program. 
  656.  
  657. I could'nt find any Information on it in 'Macintosh-Inside' 
  658. and got my only information from the 'Macintosh Technical Note'
  659. #256:Stand-Alone Code (July'92). There's an example of using
  660. resource type 'XCMD' (used by HyperCard) under PASCAL, but all 
  661. my trying to program this in C failed.
  662.  
  663. So, please please is there anybody who can help me, having
  664. experince with it and/or can tell me where I have to look and
  665. what I have to read for further information ?
  666.  
  667. Thanx in advance
  668.  
  669. - ---------------------------------------------------------------
  670. Andreas Sorgatz                  Uni-Paderborn, Germany
  671. andi@uni-paderborn.de
  672. - ---------------------------------------------------------------
  673.  
  674. +++++++++++++++++++++++++++
  675.  
  676. From: kamprath@space-grant.sprl.umich.edu (Michael F. Kamprath)
  677. Date: 13 Oct 92 03:02:55 GMT
  678. Organization: University of Michigan, Aerospace Engineering
  679.  
  680. In article <1992Oct12.193218@uni-paderborn.de> Andreas Sorgatz, andi@uni-paderborn.de writes:
  681. >My problem:
  682. >
  683. >I want to generate a ResourceFile with a code-resource in it
  684. >(from C, for example with Think-C), in order to open and exe-
  685. >cute it from and within another program. 
  686. >
  687.     .
  688.     .
  689.     .
  690. >
  691. >So, please please is there anybody who can help me, having
  692. >experince with it and/or can tell me where I have to look and
  693. >what I have to read for further information ?
  694. >
  695. >Thanx in advance
  696. >
  697.  
  698. I ask this very same question a while back . . . and now its my turn to
  699. answer :-)
  700.  
  701. Basically you just load it, cast it, then use it.  Oh, of course, you have
  702. first got to write it.  Let's say you are writing a mathmatical function that
  703. get's two double's passed and returns one value.  You would then write then
  704. code for the code-resource in the form:
  705.  
  706. double main(double x, double y)
  707. {
  708.     .
  709.     .
  710.     .
  711. }
  712.  
  713. Once you've got it written, you need to include libraries.  If you use ANSI,
  714. use the ANSI-A4 library (has to do with addressing schemes I don't fully 
  715. understand), and compile it all as a CODE resource (see THICK C manual).
  716.  
  717. Then to use it in a program:
  718.  
  719. main()
  720. {
  721.     double        (**myFuncHandle)(double x, double y);
  722.     double        xx,yy,z;
  723.     .
  724.     .
  725.     .
  726.     myFuncHandle = GetResource('PROC',128);  //resource type and number arbitary
  727.     HLock(myFuncHandle);
  728.     .
  729.     .
  730.     .
  731.     z = (*myFuncHandle)(xx,yy);
  732.     .
  733.     .
  734.     .
  735.     HUnlock(myFuncHandle);
  736.     ReleaseResource(myFuncHandle);
  737. }
  738.  
  739. Oh, I forgot to say, if you are writing a math type code resource, you'll 
  740. have to recompile ANSI-A4 so that it includes the math files from ANSI.
  741. Currently, it doesn't (at least mine didn't).
  742.  
  743. ========================================================================
  744. | Michael F. Kamprath                   | The University of Michigan   |
  745. |   kamprath@space-grant.sprl.umich.edu |      Aerospace Engineering   |
  746. |   kamprath@engin.umich.edu            |      Graduate Student        |
  747. +---------------------------------------+------------------------------+
  748. | This country is a _democracy_.  It is NOT a "Two Party Sytem."  DO   |
  749. | NOT believe The Lie that not voting Republican or Democratic will    |
  750. | waste your vote.  Vote for who ever you please, and let the          |
  751. | politicians find out what a democratic republic is all about.        | 
  752. ========================================================================
  753.  
  754. +++++++++++++++++++++++++++
  755.  
  756. From: rhorn@csws2.ic.sunysb.edu (Robert Horn)
  757. Organization: State University of New York at Stony Brook
  758. Date: Sun, 18 Oct 1992 19:13:45 GMT
  759.  
  760. In article <1992Oct12.193218@uni-paderborn.de> andi@uni-paderborn.de (Andreas Sorgatz) writes:
  761. >I want to generate a ResourceFile with a code-resource in it
  762. >(from C, for example with Think-C), in order to open and exe-
  763. >cute it from and within another program. 
  764. >
  765. >So, please please is there anybody who can help me, having
  766. >experince with it and/or can tell me where I have to look and
  767. >what I have to read for further information ?
  768. >
  769.  
  770. Off the top of my head, it can quickly be done by...
  771. - ---begin Blef.h---
  772. #pragma once
  773. #define rsrcTypeBlef 'blef'
  774. #define rsrcIdMyBlef  1
  775.             
  776. typedef struct BlefPBRec BlefPBRec, *BlefPBPtr;
  777.             // pointer to pointer to function
  778. typedef pascal OSErr (**BlefHandle)(BlefPBPtr);
  779.  
  780. struct BlefPBRec {
  781.   // your stuff here
  782. };
  783. - --- end Blef.h ---
  784.  
  785. in project a.<pi> add and compile:
  786. - ---MyBlef.c---
  787. #include "Blef.h"
  788.  
  789. pascal OSErr main(BlefPBPtr *pb) {
  790.   Handle    myself;
  791.   SignedByte    state;
  792.   OSErr         theErr;
  793.  
  794.             // get a handle to your code resource
  795.             // Think has something with A0 as well,
  796.             // but this requires no inline assembly
  797.   myself = RecoverHandle((Ptr) main);
  798.   if(myself == NULL) {
  799.     return memWZErr;    // your favorite error here
  800.   }
  801.             // get you current state, and lock yourself
  802.             // it would be bad if your code moves out 
  803.             // from under you.
  804.   state = HGetState(myself);
  805.   HLock(myself);
  806.  
  807.   // fiddle with your BlefPBPtr, do whatever your code resource
  808.   // is supposed to do... SysBeep(7) or something.
  809.             // restore your state
  810.   HSetState(myself, state);
  811.   return theErr;
  812. }
  813. - --- end MyBlef.c ---
  814. set the project's type to be a code resource of type 'blef' and ID 1
  815. set whatever other options you feel are appropiate (system, locked...)
  816. Choose build code resource, and save a file entitled "b.<pi>.rsrc"
  817.  
  818. Create a project named "b.<pi>"
  819. add the following to it...
  820. - --- begin CallBlef.c---
  821. #include "blef.h"
  822.  
  823. main() {
  824.   BlefHandle        hBlef;
  825.   BlefPBRec        pb;
  826.   OSErr            theErr;
  827.   // normal toolbox init
  828.  
  829.   ...
  830.             // get your resource, which should be there
  831.             // since think C will use any file named
  832.             // "your project name".rsrc as the app's
  833.             // resource file.
  834.   hBlef = (BlefHandle) GetResource(rsrcTypeBlef, rsrcIdMyBlef);
  835.             // check for it just not being there, or out of mem
  836.             // DoError should handle the error condition, or just 
  837.             // ExitToShell() until you get around to implementing
  838.             // it.
  839.   if(!hBlef) DoError();
  840.   // set up your pb
  841.             // call your code resource
  842.   theErr = (**hBlef)(&pb);
  843.             // release the resource when you're done with it
  844.   ReleaseResource((Handle) hBlef);
  845.  
  846.   ...
  847. }
  848. - --- end CallBlef.c ---
  849.  
  850.  
  851. - -- 
  852. rhorn@ic.sunysb.edu           Never choose a college because it has a duckpond.
  853. Would you like to touch my wombat?          Send me hate mail, I love it.
  854.  
  855. ---------------------------
  856.  
  857. From: stud08@cc4.kuleuven.ac.be (Karl Pottie)
  858. Date: Monday, 19 Oct 1992 22:46:51 +01
  859. Organization: K.U.Leuven - Academic Computing Center
  860. Subject: 'sysz' resource
  861.  
  862. I've been looking for info on the 'sysz' resource. IM or the technotes
  863. don't seem to contain any info on how or when to use the sysz resource.
  864. If I'm right, the resource contains a longword which "reserves" an
  865. amount of memory in the system heap for my init. But do I need to use
  866. a sysz if my init only uses e.g. 3Kb of RAM ?
  867. Could anybody end my quest and point me to valid info on the sysz resource ?
  868. I'd like to know everything there is to know about this resource.
  869.  
  870. +++++++++++++++++++++++++++
  871.  
  872. From: jpugh@apple.com (Jon Pugh)
  873. Date: 20 Oct 92 02:37:04 GMT
  874. Organization: Apple Computer, Inc.
  875.  
  876. In article <1992Oct19.224148@cc4.kuleuven.ac.be>, stud08@cc4.kuleuven.ac.be
  877. (Karl Pottie) wrote:
  878. > I've been looking for info on the 'sysz' resource. IM or the technotes
  879. > don't seem to contain any info on how or when to use the sysz resource.
  880. > If I'm right, the resource contains a longword which "reserves" an
  881. > amount of memory in the system heap for my init. But do I need to use
  882. > a sysz if my init only uses e.g. 3Kb of RAM ?
  883. > Could anybody end my quest and point me to valid info on the sysz resource ?
  884. > I'd like to know everything there is to know about this resource.
  885.  
  886. That's all there is.  You should always include a sysz resource in case you
  887. are approaching the end of the system heap space.  The System checks the
  888. free space in the heap and compares that to the sysz amount and if the heap
  889. is smaller then it grows the heap so that there is enough room.  I believe
  890. that the System is free to grow the heap any amount it feels like, so there
  891. should always be more room than your sysz requests.
  892.  
  893. You don't need one, because in a 3K INIT you are less likely to run into a
  894. situation where the System heap doesn't have at least 3K available, but you
  895. _should_ have one.  Just in case.
  896.  
  897. Jon
  898.  
  899. +++++++++++++++++++++++++++
  900.  
  901. From: nerm@apple.com (Dean Yu)
  902. Date: 20 Oct 92 17:32:26 GMT
  903. Organization: Apple Computer, Inc.
  904.  
  905. In article <jpugh-191092193029@90.20.3.201>, jpugh@apple.com (Jon Pugh)
  906. wrote:
  907. > In article <1992Oct19.224148@cc4.kuleuven.ac.be>, stud08@cc4.kuleuven.ac.be
  908. > (Karl Pottie) wrote:
  909. > > 
  910. > > I've been looking for info on the 'sysz' resource. IM or the technotes
  911. > > don't seem to contain any info on how or when to use the sysz resource.
  912. > > If I'm right, the resource contains a longword which "reserves" an
  913. > > amount of memory in the system heap for my init. But do I need to use
  914. > > a sysz if my init only uses e.g. 3Kb of RAM ?
  915. > > Could anybody end my quest and point me to valid info on the sysz resource ?
  916. > > I'd like to know everything there is to know about this resource.
  917. > That's all there is.  You should always include a sysz resource in case you
  918. > are approaching the end of the system heap space.  The System checks the
  919. > free space in the heap and compares that to the sysz amount and if the heap
  920. > is smaller then it grows the heap so that there is enough room.  I believe
  921. > that the System is free to grow the heap any amount it feels like, so there
  922. > should always be more room than your sysz requests.
  923. > You don't need one, because in a 3K INIT you are less likely to run into a
  924. > situation where the System heap doesn't have at least 3K available, but you
  925. > _should_ have one.  Just in case.
  926. > Jon
  927.  
  928.   Currently, the startup code guarantees 24K of heap space (not necessarily
  929. contiguous) for INITs.  (I think it used to be 16K on older systems.)  If
  930. you need less than that, you don't need to include a 'sysz' resource.  If
  931. you need more, include a 'sysz' 0 resource.  Keep in mind that this is
  932. memory available to your INIT at the time your INIT is loaded, and may not
  933. necessarily be around later on down the road.
  934.  
  935. - -- Dean Yu
  936.    Blue Meanie, Negative Ethnic Role Model, etc.
  937.    Apple Computer, Inc.
  938.  
  939. ---------------------------
  940.  
  941. From: ajr3@quads.uchicago.edu (Alain Roy)
  942. Subject: Problem w/ Sys7 Popup Menus
  943. Date: 19 Oct 92 13:09:11 GMT
  944. Organization: University of Chicago Computing Organizations
  945.  
  946. Hello. I have a small program in which i use the new System 7 popup
  947. menus. Oddly enough, the arrow in the box sometimes turns grey after 
  948. selecting an item in the menu. As far as I can tell, my code is correct.
  949. Has anyone seen this behavior before?
  950.  
  951. Thanx in advance for any help.
  952.  
  953. Alain Roy
  954. ajr3@midway.uchicago.edu
  955.  
  956. +++++++++++++++++++++++++++
  957.  
  958. From: alexr@apple.com (Alexander M. Rosenberg)
  959. Date: 20 Oct 92 20:17:42 GMT
  960. Organization: Hackers Anonymous
  961.  
  962. In article <1992Oct19.130911.21937@midway.uchicago.edu> Alain Roy,
  963. ajr3@quads.uchicago.edu writes:
  964. >Hello. I have a small program in which i use the new System 7 popup
  965. >menus. Oddly enough, the arrow in the box sometimes turns grey after 
  966. >selecting an item in the menu. As far as I can tell, my code is correct.
  967. >Has anyone seen this behavior before?
  968.  
  969. Selecting an item numbered higher than 31 causes this. It will be corrected
  970. in an future system software release.
  971. - ---------------------------------------------------------------------------
  972. - -  Alexander M. Rosenberg  - INTERNET: alexr@apple.com      - Yoyodyne    -
  973. - -  330 Waverley St., Apt B - UUCP:ucbvax!apple!alexr        - Propulsion  -
  974. - -  Palo Alto, CA 94301     -                                - Systems     -
  975. - -  (415) 329-8463          - Nobody is my employer so       - :-)         -
  976. - -  (408) 974-3110          - nobody cares what I say.       -             -
  977.  
  978. ---------------------------
  979.  
  980. From: scott@mcl.ucsb.edu (Scott Bronson)
  981. Subject: Registering Gestalt Selectors
  982. Date: 20 Oct 92 15:30:32 GMT
  983.  
  984. I sent in a registration request for an INIT/cdev combo that I just
  985. finished, asking if it was possible to register Gestalt selectors
  986. too.  My file type/creator came back without a hitch, but they
  987. totally ignored my question.
  988.  
  989. Does anyone know?  It seems like good practice to use Gestalt to get
  990. at my globals in the System heap, but only if there is some sort of
  991. standard to ensure no conflicts will happen.
  992.  
  993.     - Scott
  994.  
  995. +++++++++++++++++++++++++++
  996.  
  997. From: absurd@applelink.apple.com (Tim Dierks, software saboteur)
  998. Date: 20 Oct 92 18:36:38 GMT
  999. Organization: MacDTS Marauders
  1000.  
  1001. In article <scott.719595032@mcl>, scott@mcl.ucsb.edu (Scott Bronson) wrote:
  1002. > I sent in a registration request for an INIT/cdev combo that I just
  1003. > finished, asking if it was possible to register Gestalt selectors
  1004. > too.  My file type/creator came back without a hitch, but they
  1005. > totally ignored my question.
  1006. > Does anyone know?  It seems like good practice to use Gestalt to get
  1007. > at my globals in the System heap, but only if there is some sort of
  1008. > standard to ensure no conflicts will happen.
  1009. >     - Scott
  1010.  
  1011. The usual practice is to use your creator.  As it says in Inside Mac VI,
  1012. page 3-42, "If you have registered a creator string with Apple, you are
  1013. strongly encouraged to use that sequence as your selector code."  If
  1014. everyone follows this rule, we won't have any conflicts.  For extra
  1015. safety, register an extremely obscure creator code and use it as your
  1016. selector.
  1017.  
  1018. Tim Dierks
  1019. MacDTS, but I speak for my knees.
  1020.  
  1021. +++++++++++++++++++++++++++
  1022.  
  1023. From: grobbins@Apple.COM (Grobbins)
  1024. Date: 22 Oct 92 08:29:53 GMT
  1025. Organization: Weird Future Computer Dept.
  1026.  
  1027. In article <scott.719595032@mcl> scott@mcl.ucsb.edu (Scott Bronson) writes:
  1028. >I sent in a registration request for an INIT/cdev combo that I just
  1029. >finished, asking if it was possible to register Gestalt selectors
  1030. >too.  My file type/creator came back without a hitch, but they
  1031. >totally ignored my question.
  1032.  
  1033. Sorry 'bout that.  So many creator/file type requests come in that they
  1034. more or less have to be handled by someone running on autopilot.
  1035.  
  1036. Gestalt selectors are not registered by Apple.  A reasonable convention
  1037. is to use your creator type for your selector. If you need more than
  1038. one, pick something obscure, like a code with option characters in
  1039. it.  Be sure to include an upper case character since Apple generally
  1040. reserves codes without upper case characters in them.
  1041.  
  1042. >Does anyone know?  It seems like good practice to use Gestalt to get
  1043. >at my globals in the System heap, but only if there is some sort of
  1044. >standard to ensure no conflicts will happen.
  1045.  
  1046. Gestalt really isn't intended to be used for sharing memory blocks....
  1047.  
  1048. Grobbins              grobbins@apple.com
  1049.  
  1050. Usual disclaimers apply.
  1051.  
  1052. ---------------------------
  1053.  
  1054. From: lward@husc8.harvard.edu (Lester Ward)
  1055. Subject: RTF format?
  1056. Date: 14 Oct 92 17:51:13 GMT
  1057.  
  1058. Is the Rich Text Format (RTF) file format public?  And if it is, where
  1059. might I find documentation on it?
  1060.  
  1061. Thanks,
  1062. Wordman
  1063. lward@husc.harvard.edu
  1064.  
  1065. +++++++++++++++++++++++++++
  1066.  
  1067. From: gilbertd@sunflower.bio.indiana.edu (Don Gilbert)
  1068. Organization: Biology, Indiana University - Bloomington
  1069. Date: Thu, 15 Oct 1992 04:25:36 GMT
  1070.  
  1071. Paul Dubois seems to be waging a one-programmer campaign for rtf.
  1072. I haven't seen any public rtf utilities from others, which may be
  1073. a shame -- rtf is beginning to look to me like one of the best
  1074. inter-platform document formats.  The commonest Mac and PC worders
  1075. all deal with it, and you can find it on unix systems.
  1076.  
  1077. You can find Paul Dubois' rtf2other converter, his new
  1078. troff2rtf converter, plus various rtf docs including one from Microsoft
  1079. specifying the format:  anon. ftp to ftp.primate.wisc.edu, look in
  1080. /pub/RTF, and /pub/troffcvt if you want to move troff to rtf.
  1081.  
  1082. - -- don
  1083. - -- 
  1084. Don Gilbert                                     gilbert@bio.indiana.edu
  1085. biocomputing office, biology dept., indiana univ., bloomington, in 47405
  1086.  
  1087. +++++++++++++++++++++++++++
  1088.  
  1089. From: bwilliam@iat.holonet.net (Bill Williams)
  1090. Organization: HoloNet (BBS: 510-704-1058)
  1091. Date: Sat, 17 Oct 1992 08:03:46 GMT
  1092.  
  1093. NeXT distributes a RTF Spec. The tech reference for MS Word gurus
  1094. describes it also (a MS published book found in bookstores once)
  1095. Bill Williams
  1096.  
  1097.  
  1098. +++++++++++++++++++++++++++
  1099.  
  1100. From: sro@media.mit.edu (Shawn O'Donnell)
  1101. Date: 22 Oct 92 04:20:15 GMT
  1102. Organization: M.I.T. Media Laboratory
  1103.  
  1104. I, too, think RTF is pretty cool.  And I'll make a prediction for you:
  1105. in the future, FAXes will be digital and by RTF.  No more stinkin'
  1106. low-res bit-maps.  Crisp reproductions.  (Except for the bit-mapped
  1107. logos and signatures...)
  1108.  
  1109. In any case, I found a HyperCard stack somewhere with RTF stuff in it.
  1110. It's called "Styled->RTF."  In the information field, there is the
  1111. following passage:
  1112.  
  1113. > Write the source for definitive info about the Rich Text Format
  1114. > Specification:
  1115. >     Microsoft Corporation
  1116. >     RTF/Applications
  1117. >     16011 NE 36th Way
  1118. >     Box 97017
  1119. >     Redmond, WA  98073-9717
  1120. > I almost forgot the disclaimer: my application of the RTF
  1121. > specification uses a limited subset of its available features.  It is
  1122. > intended as an exercise for YOU to use this code to do more, if you
  1123. > wish, and it's reccomended that you first obtain the information from
  1124. > the address above.
  1125. > Anyway, I'd like to know if (and then, how) you have found this useful. 
  1126. > Please send me your comments. 
  1127. > Chuck Kuske
  1128. > AppleLink: KUSKE1
  1129. > AOL: ElvisLives
  1130. >  February 20, 1991
  1131.  
  1132. RTF may or may not be a public domain kind of thing--from what I know about
  1133. the Microsoft people, they'll probably haul all of our asses into court for
  1134. deigning to mention the letters "RTF" without citing the trademark.  
  1135.  
  1136. On the other hand, their lawyers could have been sleeping one day and
  1137. let the engineers do something nice for the computer world.  You'll
  1138. have to ask them.  And let us all know--from home or jail--if there's
  1139. some sort of copyright on RTF-style formats.
  1140.  
  1141. I'm having trouble figuring out how they could stop you from
  1142. reverse-engineering the format, but then I'm not a lawyer, am I?
  1143.  
  1144. - --Shawn
  1145.  
  1146. ---------------------------
  1147.  
  1148. Subject: Changing open resource files
  1149. From: greg@huia.canterbury.ac.nz (Greg Ewing)
  1150. Date: Wed, 21 Oct 1992 04:25:47 GMT
  1151. Organization: University of Canterbury, Christchurch, New Zealand
  1152.  
  1153. I'm writing an application that creates and edits resources for use by 
  1154. another application (not written by me). Rather than stuff the resources
  1155. into the application itself, which seems a kludgy thing to do, I'm
  1156. putting them in a separate file and opening it with Suitcase.
  1157.  
  1158. The problem is that to test the created resources requires going
  1159. through an elaborate save/open file with suitcase/launch application/
  1160. try it out/quit application/close file in suitcase/open file with editor
  1161. loop, which becomes very tedious!
  1162.  
  1163. So, I'm wondering whether I can change the resource file while Suitcase
  1164. has it open. Attempts at doing this so far have had results ranging from
  1165. apparent success, through various combinations of Suitcase/my editor
  1166. being unable to open the file because it's busy, to system crashes.
  1167.  
  1168. Is there any safe way of doing it? If I test whether the resource
  1169. file is already open, and don't close it afterwards if it was,
  1170. I could at least avoid closing the resource file out from under
  1171. Suitcase (which seemed to be one source of problems).
  1172.  
  1173. Would that be sufficient? If so, how do I test whether a resource
  1174. file is open? There doesn't seem to be any obvious way of doing
  1175. this, although ResEdit seems to manage it somehow. ResEdit also seems
  1176. to be able to edit open System files, albeit with a danger warning,
  1177. suggesting that with care it is possible to do what I want.
  1178.  
  1179. Any help appreciated,
  1180.  
  1181. Greg Ewing, Computer Science Dept, Canterbury Univ., Christchurch, New Zealand
  1182. Internet: greg@cosc.canterbury.ac.nz    +--------------------------------------
  1183. Spearnet: greg@nz.ac.canterbury.cosc    | A citizen of NewZealandCorp, a
  1184. Telecom:  +64 3 667 001 x6367          | wholly-owned subsidiary of Japan Inc.
  1185.  
  1186.  
  1187. +++++++++++++++++++++++++++
  1188.  
  1189. From: ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)
  1190. Date: 22 Oct 92 09:05:24 +1300
  1191. Organization: University of Waikato, Hamilton, New Zealand
  1192.  
  1193. In article <BwGEz0.MMn@cantua.canterbury.ac.nz>, greg@huia.canterbury.ac.nz (Greg Ewing) writes:
  1194. >
  1195. > So, I'm wondering whether I can change the resource file while Suitcase
  1196. > has it open. Attempts at doing this so far have had results ranging from
  1197. > apparent success, through various combinations of Suitcase/my editor
  1198. > being unable to open the file because it's busy, to system crashes.
  1199. >
  1200. > Is there any safe way of doing it? If I test whether the resource
  1201. > file is already open, and don't close it afterwards if it was,
  1202. > I could at least avoid closing the resource file out from under
  1203. > Suitcase (which seemed to be one source of problems).
  1204.  
  1205. I've never actually used Suitcase, but I gather it opens those resource
  1206. files and puts them *behind* the System file in the resource map chain, to
  1207. make those resources look like they're in the system file.
  1208.  
  1209. If my understanding of how Suitcase works is correct, then you should be able
  1210. to do what you want to do.
  1211.  
  1212. >
  1213. > Would that be sufficient? If so, how do I test whether a resource
  1214. > file is open? There doesn't seem to be any obvious way of doing
  1215. > this, although ResEdit seems to manage it somehow. ResEdit also seems
  1216. > to be able to edit open System files, albeit with a danger warning,
  1217. > suggesting that with care it is possible to do what I want.
  1218.  
  1219. Funnily enough, there was a discussion about this in this newsgroup just a
  1220. few weeks ago. The basic technique is quite simple: check the value of
  1221. the TopMapHndl low-memory global before and after opening the resource file.
  1222. If it changes, then a new resource map has been added to the chain, which
  1223. means the resource file wasn't previously open. If it doesn't change, you've
  1224. just reopened a previously-open resource file.
  1225.  
  1226. Lawrence D'Oliveiro                       fone: +64-7-856-2889
  1227. Computer Services Dept                     fax: +64-7-838-4066
  1228. University of Waikato            electric mail: ldo@waikato.ac.nz
  1229. Hamilton, New Zealand    37^ 47' 26" S, 175^ 19' 7" E, GMT+13:00
  1230. One does not design a human interface based on the fact that 3-D interfaces
  1231. look "real cool". One only has to sit in virtually any of the "real cool"
  1232. chairs built in the last fifty years by leading Bauhaus designers to understand
  1233. why: what looks "real cool" can often be acutely painful to use. First, the
  1234. interface should communicate; only then should it look "real cool".
  1235.                 -- Bruce Tognazzini, "Tog on Interface"
  1236.  
  1237. ---------------------------
  1238.  
  1239. End of C.S.M.P. Digest
  1240. **********************
  1241.